#define _CRT_SECURE_NO_WARNINGS 1


#include <iostream>
using namespace std;

class Date
{
public:

    Date(int year, int month, int day)
        :_year(year)
        , _month(month)
        , _day(day)
    {

    }

    void print()
    {
        printf("%d", _year);
        if (_month < 10)
        {
            printf("-0%d", _month);
        }
        else
        {
            printf("-%d", _month);
        }
        if (_day < 10)
        {
            printf("-0%d", _day);
        }
        else
        {
            printf("-%d", _day);
        }
        cout << endl;
    }

    int GetYearday(int year)
    {
        if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
        {
            return 366;
        }

        else
        {
            return 365;
        }

    }

    int GetMonthday(int year, int month)
    {
        int Monthday[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

        if (month == 2)
        {
            if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
            {
                return Monthday[month] + 1;
            }

            else
            {
                return Monthday[month];
            }


        }

        return Monthday[month];
    }

    int GetDay()
    {
        int nums = 0;

        for (int i = 1; i < _month; i++)
        {
            nums += GetMonthday(_year, i);
        }

        return nums + _day;

    }

    int operator-(Date& d1)
    {
        int nums1 = 0;
        for (int i = 1; i < _month; i++)
        {
            nums1 += GetMonthday(_year, i);
        }
        nums1 += _day;

        int nums2 = 0;
        for (int i = 1; i < d1._month; i++)
        {
            nums2 += GetMonthday(d1._year, i);
        }
        nums2 += d1._day;

        int YearDay = 0;
        for (int i = _year; i > d1._year; i--)
        {
            YearDay += GetYearday(i);
        }

        return YearDay + nums1 - nums2;

    }

    void operator=(Date& d1)
    {
        _year = d1._year;
        _month = d1._month;
        _day = d1._day;

    }

    friend istream& operator >>(istream& in, Date& d1);

private:
    int _year;
    int _month;
    int _day;
};

istream& operator >>(istream& in, Date& d1)
{

    in >> d1._year;
    int n = 0;
    in >> n;

    while (n > d1.GetMonthday(d1._year, d1._month))
    {

        n -= d1.GetMonthday(d1._year, d1._month);

        d1._month++;

    }
    d1._day = n;

    return in;
}
int main()
{
    Date d2(0, 1, 0);
    for (Date d1(0, 1, 0); cin >> d1; d1 = d2)
    {

        d1.print();
    }
}